import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Hua YY
 * Date: 2024-09-09
 * Time: 10:47
 */
public class TestJDBCInsert {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入ID：");
        int id = scanner.nextInt();
        System.out.println("请输入Name：");
        String name = scanner.next();

      //1建立数据源，确定数据库的位置
        DataSource dataSource = new MysqlDataSource();
        //2找ip地址端口s输入用户名和密码
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java110?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("613718long");
        //3建立连接
        Connection connection = dataSource.getConnection();
        //4写sql语句
        String sql = "insert into student values(?,?) ";//"insert into student values(" + id + " , '" + name +"')";//重点，这里为什么要加单引号双引号，字符串拼接？
        //5将sql语句转化为可以发送的语句对象，即预处理语句
        PreparedStatement statement = connection.prepareStatement(sql);
        /*
        * 替换占位符*/
        statement.setInt(1,id);//把第一个？替换为id
        statement.setString(2,name);//把第二个？替换为name
        //6发送并返回一个整数
        int n = statement.executeUpdate();
        System.out.println("n:"+n);
        //释放资源
        statement.close();
        connection.close();

    }
}














/*
        //第一步：建立数据源，确定数据库的位置
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java110?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("613718long");
        //第二步：idea连接数据库
        Connection connection = dataSource.getConnection();//报异常
        //第三步：写sql语句
        String sql = "insert into student values(2,'李四')";
        //第四步：把sql转换成可以发送的语句对象
        PreparedStatement statement = connection.prepareStatement(sql);//预处理语句
        //第五步：发送,并返回一个整数，用来响应反馈一下，
        int n = statement.executeUpdate();
        System.out.println("n : " + n);
        //第六步：释放资源
        statement.close();
        connection.close();
*/